SonED2 v16.04.28 Q&D
v16.04.28 Q&D
(The "Q&D" stands for "Quick and Dirty". Please excuse any new issues that have cropped up in the development of this build; this is a hastily-prepared courtesy update that was made while I was otherwise committed to a different project)
- Level/Object and Tile editors, as well as the object type selector, have been split into separate windows
- Level/Object editor windows may now be resized
- Level/Object editors now feature 1/4, 1/2, 1x, 2x, and 4x zoom levels, cycled with the (upper number row) +/- keys
- Level/Object editors may now be scrolled by holding the ctrl key and sliding the mouse to any of the four edges of the window
- It is now possible to modify a chunk's collision type settings from within the level editor by hovering over the target block and using the G/B (path 0) or H/N (path 1) keys
- The mouse wheel may now be used to cycle the cursor through chunks in the level editor, or to cycle the object type of a hovered object in the object editor
BugFixes:
- Loading a Project that references a nonexistent file for Tiles/Blocks/Chunks would not properly reset the number of Tiles/Blocks/Chunks on the page corresponding with the nonexistent file, which would cause excess blank tiles to be inserted into the page that were not displayed or accessible until the project was saved and reloaded, and in some cases, corrupt importing. This now does not occurr; "loading" a nonexistent file will now correctly create a "page" containing no Tiles/Blocks/Chunks at all
- The "Remember Sprite State" flag was not set for rings created by right-clicking when using Sonic 2 Objects type without a separate Rings List. These Rings are now created with the "Remember Sprite State" flag set
- Fixed an occasional crash when attempting to import 16x16 blocks or larger structures
v11.05.19
- All 16bit DOS programs previously included with the ROMulan file sets for Sonic CD and Chaotix have been replaced with Win32 console versions, which will work in 64bit Windows
BugFixes:
- Holding "Ctrl" to change Object values by 10(hex), broken in the previous update, now works again
- The Tile Editor was acting as if the "Ctrl" key was being held if it were pressed at least once in the Object Editor. This now only happens when the key is actually being held; non-"Ctrl"-modified keypresses now work properly again
v11.04.12
- While hovering over an Object in the Object Editor, holding Ctrl and pressing an Arrow Key will now move the Object in the corresponding direction by one pixel at a time, according to the hotkey repeat timer. This method will ignore the "Snap-To-Grid" setting
- A "Cursor Position" entry has been added to the Status Display for the Level Editor to specify the 2D X and Y map coordinates and 1D map array entry ID of the tile position that is currently being pointed to
- The Status Display in the Level and Object Editors can now be toggled off and back on by using the "Tab" key
BugFixes:
- When Objects were moved such that their drawing would begin above the top of the level, they would become invisible and inaccessible in the editor. Objects may now be moved all the way to "0" on the Y axis and still be both visible and editable
v11.03.27
- Specifying a Rings Layout format other than 0 for a Project will now cause double-right-click on an empty space in the Object Editor to insert a Rings Layout format Ring regardless of the Objects Layout format that was specified
- In the Object Editor, the A/Z, S/X, and D/C keys will now wrap their corresponding settings around when the minimum/maximum value has been reached, and (when applicable), holding CTRL to modify by 10 hex (16 dec) will no longer be ignored in favor of midifying by 1 when the difference between the current value and the max/min value is 16 or less
- The "Block ___ Column _ Palette lines/priorities don't match" warning for the Sonic 2 split-screen compatibility feature originally listed Block IDs in decimal. These IDs are now displayed as hex, as they (and other IDs) are in the rest of the editor
- The program no longer attempts to use 8-bit color when in full-screen mode without the "Translucent Cursor" option selected. This eliminates color problems under these conditions with newer video drivers that do not properly support 8-bit color mode
- On startup, the Object editor will now automatically center around Start Position 0 if Start Positions were specified within the loaded Project File
- Player Start Positions are now drawn onto Level Layout map dumps when using either of the two "Include ___ Objects" options
BugFixes:
- Pressing "G" for switching a Tile's Display Priority was accepted when pointing above the Block Editor, causing it to read/write out of range and crash the program. The keypress is now only accepted when the mouse is actually inside the Block Editor, disallowing out-of-bounds reads/writes and preventing the crash
- While levels greater in height/width than 0xFF could be read, edited, and saved, the plane resize operation would crash the program when the new target size was greater in width/height than 0xFF due to it being overlooked when all Plane Size operations were updated for the newer formats' WORD-length size settings, rendering the new Plane array too small and causing out-of-bounds writes during the adjustment. This has been corrected, and planes may now be successfully resized in excess of 0xFF on either axis
- Handling of the "DefaultParam" property for Object Types in the Object Listing File was not properly updated for Chaotix's WORD-length parameter value, causing the upper byte of this setting to be ignored. This property will now correctly accept WORD-values greater than 0xFF
- The X key would not increase an Object's "Parameter" value beyond 0xFF for Chaotix-format Objects. This key now allows full use of Chaotix's WORD-length "Parameter" value
- SonED2's Object handling code was structured for a maximum of 2 Player Start positions, causing issues when attempts were made to use 3 or more. Any number of Start Positions (up to FF) may now be used with no issue
- The "Total ???" Status display element for the Object Editor will now display even when the cursor is not hovering over a placed Object/Ring. "Rings" and "Misc" are now only included when their respective settings in the currently-loaded Project File have been used to load those types of data
- When hovering the cursor over a "Misc" Object in the Object Editor, the Status display would always list it as "Unknown Misc Object" when using the customizable Level Project File format because it only tested for the original "Sonic 2 Level Project" format. The Status now displays the correct information for the Casino Night Zone Special Bumper Objects when they are loaded by a new-format "Level Project"
- When dumping Level Layout maps and including Sonic CD-style Objects, every Object was drawn to the map regardless of Time Period settings. Now, only Objects that are flagged for the Time Periods that are currently set to display within the editor are drawn
v11.02.24
- Documentation has been revised and moved to HTML
- Because the TGA format is more widely-supported than PCX, SonED2 can now accept
TGA image files in addition to the existing PCX support. All image file export
options will now output TGA image files rather than PCX
- Option to convert the level's tileset for use in Sonic 2's split-screen competition mode.
- Multi-page tile support for games that use more than one "page" of Tiles, Blocks,
or Chunks to further vary level layout. Insert, delete, expand, and contract
features will resize the appropriate page depending on the tile/page selected.
Pages can be selected for viewing individually by the settings below Tile Census,
and the tile ripper has been updated with settings to control on which page tile
redundancy checking begins, and on which page to append the new tiles. This
applies to the next three listed updates:
- Support for Sonic 3 (and Knuckles), "Sonic Crackers", Knuckles' Chaotix, and
Sonic CD level data editing
- Native support for GHZ's split 8x8 tile set. For projects, this requires the addition of the
"Num 8x8 Pages" entry just before the tileset's filename in any (old-style) custom Sonic 1
project files. It should be set to 1 for all levels other than GHZ. For GHZ, it
should be set to 2, followed by two 8x8 tile entries giving the names of both
tile data files (Previous versions required manually merging the tiles before
load, and manually separating after save). Project Files created before this update are still
functional (If a number is not detected, it is assumed that there is only one file)
- Generic "Level Project" format. Where applicable, Data format, compression type,
and number of pages are specified for each data type to control how the data are
read/written. (The old game-specific project formats are still functional)
- Player start location support (under new project format). Information for adding
the representative graphic has been added to "Object Def" documentation
- Level Layout importing support- In addition to tile graphics, the tile ripper can
now import map layout data from the image. The layout is imported to the
"Plane Clipboard", and can be pasted anywhere within the level
- Integrated "ROMulan" functionality for accessing and re-implementing ROM data
without the use of an external program
- Sonic 1 Special Stage Editor, with animated wall objects
- Tile listing selection in the Tile Editor is now displayed and controlled by the
Tile Census area. "Maximum" values have been removed from the census because they
actually vary depending on the nature of the game
- The tiny arrows in the Tile Editor have been removed in favor of an easier-to-use
method for changing these values using the mouse- Left-click the option's name or value
to increase, and Right-click to decrease. All previously-available keyboard hotkeys are still available as well
- Keyboard hotkeys have been added for adjusting the RGB components of palette entries
in the Tile Editor
- When the standard and accessory palettes have been switched from within in the Tile Editor,
they no longer need to be switched back before saving the project or attempting an alpha blend.
The palette colors will be saved to the correct files and the blend will be performed from the
standard palette onto the accessory palette, even if the accessory palette is currently swapped into indexes 0-63
- When "grabbing" a Tile from a Block, the currently selected color is now automatically updated so that the Tile Editor will draw the Tile using the palette row that was assigned to the Tile within the Block it was "grabbed" from
- Palette colors can now be "grabbed" from a Tile
- Most value-changing hotkeys now have a delayed repeat- holding the key for more than half a second will cause it to start repeating
- Message Window now automatically comes to the front when level data ripping begins
- Old Message Window has been replaced with a Console Window
- SonED2 no longer hogs CPU time when it doesn't have focus
- Implemented a better font
- Chose a new version numbering system, "YY.MM.DD", which maintains release dates and will simplify the numbering of minor updates
BugFixes:
- Double-Right-Clicking to place a Ring in Sonic 1 didn't set the Ring Object's "Remember Sprite State" flag.
This placement method now sets the flag properly
- Tile Ripper didn't actually optimize out flipped/mirrored duplicates of existing
16x16 blocks. 16x16 graphic sections that can be created by flipping/mirroring
already-existing blocks will now use those blocks instead of producing new ones
- SonED2 now restores its drawing surface and buffer pointers properly after having
switched to another DirectX program while in Windowed mode, so editor contents
continue to display properly without having to switch into and out of full-screen
mode, or restart the program
- Scrollable range (both by keypress and scrollbars) for Level, Object, and Tile
editors have been corrected so that data smaller than one screen in either height
or width will not enable scrolling on that axis
- Main window now has focus on startup rather than message window
- In Sonic 1, Chunks "flagged" as loops in the level layout would be altered when
using insert/delete functions on the Chunk list because this effectively caused
them to read as being of a higher ID than the inserted/deleted Chunk, signaling
that they needed to be shifted. They are now taken for their actual ID and are only
shifted if they are actually farther into the list than the inserted/deleted Chunk
- Certain "hotkeys" no longer repeat. Most notably, F3 does not save a project more than once
if still held when saving is complete
v1.03
BugFixes:
- Removed some mistakenly-included early development code that caused keys
1, 2, 3, and 4 to modify the editor's level layout size settings without
correcting the level data array, causing accidental data loss upon accidental
stray keypresses. The proper keys for resizing the level are (and have been)
Ctrl+Arrows
v1.02
- Update to the Sonic 1 Object Def files by Hivebrain (graphics for GHZ and various
misc sprites, object def text and settings tweaks)
BugFixes:
- Though the previous version properly accounted for the "Remember Sprite State"
flag, it was still handled improperly during save. The flag saves now, and a
feature to set all sprites in the level to their default "Remember Sprite State"
setting (SHIFT+0) can be used to correct improper flag states (but not otherwise
damaged sprites). (This is not automatic because it would contradict the ability
to manually toggle the flag for each sprite)
- Minimum/maximum sprite setting values weren't properly enforced when using the
A/Z keys, allowing the value to go below 0 or above FF, causing the program to
read beyond the end of the object def data and crash. The limit is now properly
enforced
v1.01
BugFixes:
- Misinformation about sprite storage in Sonic 1 led to a misuse of a flag
stored in the sprite type, causing some sprites to vanish during gameplay.
This flag is now recognized as the "Remember Sprite State" flag and handled
appropriately (This problem wasn't present in SonED because the original
object def files treated the full value as if it were the real ID)
- A typo caused Height map lists smaller than 256 entries would only expand to
255. The final entry is now available
- A typo in the Sonic 2 Object Def rendered the "Egg Prison" sprite unselectable.
The problem is corrected in the current def, enabling the sprite to be selected
for editing and/or moving
v1.00